home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 September / CHIP Eylül 1998.iso / Slackwar / kernels / makedisk < prev    next >
Text File  |  1996-06-10  |  3KB  |  98 lines

  1. #!/bin/sh
  2. #define Q+D
  3. #
  4. # This makes a bootkernel disk in /dev/fd0 from a kernel image.
  5. #
  6. # Run this in a directory containing the kernels you're gonna use, and a
  7. # subdirectory with a master image of the bootkernel disk.
  8. #
  9. # This is the command to use:
  10. #
  11. # makedisk kernel_image disk_size
  12. #          ^^           ^^^^^^^^^ This is 1440 or 1200
  13. #          ^^^^^ This is the name (and maybe path to) the kernel you're going
  14. #                to use, such as scsinet/scsinet.
  15. #
  16. #
  17. KERNEL=$1
  18. DISKSIZE=$2
  19. FSSIZE=`filesize $1`
  20. FSSIZE=`expr $FSSIZE + 122112`
  21. FSSIZE=`expr $FSSIZE / 1024`
  22. TARGET=/dev/fd0
  23. MASTER_DIR=/tmp/master-$$
  24. CWD=`pwd`
  25. MOUNT=/tmp/mnt-$$
  26. if [ ! -d $MASTER_DIR ]; then
  27.   mkdir -p $MASTER_DIR
  28.   ( cd $MASTER_DIR ; tar xzvf $CWD/master.tar.gz )
  29.   DELETE_MASTER=true
  30. fi
  31. if [ ! -d $MOUNT ]; then
  32.   mkdir -p $MOUNT
  33.   DELETE_MOUNT=true
  34. fi
  35. if [ $DISKSIZE = 1200 ]; then
  36.  cp lilo.conf.1200 $MASTER_DIR/etc/lilo.conf
  37.  RAMSIZE=1200
  38. elif [ $DISKSIZE = 1440 ]; then
  39.  cp lilo.conf.1440 $MASTER_DIR/etc/lilo.conf
  40.  RAMSIZE=1440
  41. else
  42.  echo
  43.  echo "Usage: makedisk kernel_image disk_size"
  44.  echo
  45.  echo "Disk is made in /dev/fd0. Target disk must be formatted."
  46.  echo "Legal disk sizes are 1200 and 1440."
  47.  echo
  48.  exit
  49. fi
  50. if [ -r $1 ]; then
  51.  echo "Making a bootkernel disk from kernel image $1..."
  52. else
  53.  echo "Image $1 not readable."
  54.  exit
  55. fi
  56. cp $1 $MASTER_DIR/vmlinuz 
  57. echo "Rdeving -R $MASTER_DIR/vmlinuz 0"
  58. rdev -R $MASTER_DIR/vmlinuz 0
  59. #echo "Rdeving -r $MASTER_DIR/vmlinuz $RAMSIZE"
  60. #rdev -r $MASTER_DIR/vmlinuz $RAMSIZE
  61. echo "Rdeving rdev -r $MASTER_DIR/vmlinuz 49152"
  62. rdev -r $MASTER_DIR/vmlinuz 49152
  63. echo "Rdeving -v $MASTER_DIR/vmlinuz -v"
  64. rdev -v $MASTER_DIR/vmlinuz -1
  65. # It's possible some people might want to use /dev/fd0h1200 or /dev/fd0H1440
  66. # on the line below...
  67. echo "Rdeving $MASTER_DIR/vmlinuz /dev/fd0"
  68. rdev $MASTER_DIR/vmlinuz /dev/fd0
  69. #echo "Formatting the target disk..."
  70. #fdformat /dev/fd0H1200
  71. echo "Blanking the target disk..."
  72. dd if=/dev/zero of=$TARGET bs=1024 count=$FSSIZE
  73. echo "Making the MINIX/Linux filesystem..."
  74. # Let's use a 600K size, since that's good enough for the kernel + utilities
  75. # needed to boot... then we can reduce the size of the uncompressed disks.
  76. mkfs.minix -i 400 $TARGET $FSSIZE
  77. echo "Mounting the disk on $MOUNT..."
  78. mount $TARGET $MOUNT
  79. cd $MASTER_DIR
  80. echo "Copying the files over..."
  81. cp -a * $MOUNT
  82. sync
  83. echo "Installing LILO..."
  84. lilo -r $MOUNT
  85. sync
  86. umount $MOUNT
  87. echo "Bootkernel disk created."
  88. if [ "$DELETE_MASTER" = "true" ]; then
  89.   rm -rf $MASTER_DIR
  90. fi
  91. if [ "$DELETE_MOUNT" = "true" ]; then
  92.   rm -rf $MOUNT
  93. fi
  94. NAME=`dirname $1`
  95. NAME=`basename $NAME`
  96. dd if=/dev/fd0 of=/tmp/$NAME bs=1024 count=$FSSIZE
  97.